Computer-based education and educational software have developed significantly over the past 30 years. However, educational software and computer-based educational techniques lack the ability for a user to test his or her learned knowledge in the “real world”, while still being in a controlled environment. In addition, if a user is “released to the world” without having accomplished a prescribed level of accomplishment on computer-based educational software, the user will be unprepared for real-life scenarios and the software may be considered a failure as an educational tool.